﻿Imports CapaLogica.CL.Tema
Imports CapaLogica.CL.UtilidadesGenerales
Imports CapaLogica.CL.Usuario
Imports System.Threading


Public Class ModificarTema
    Inherits System.Web.UI.Page

    Private tema As Dictionary(Of String, Object)

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
  
            If Session("rol") = "1" Or Session("rol") = "5" Then
                Response.Redirect("Inicio.aspx")
            End If

            seguridadDePagina()

            Dim id_tema As Integer = CInt(Request("id_tema"))

            If Request("inpAccion") = "modificar" Then

                Dim nombre As String = CType(Request.Form("txtNombre"), String)
                Dim descripcion As String = CType(Request.Form("txtaDescripcion"), String)
                Dim fechaFin As DateTime
                Dim temp As String
                Dim tieneExp As Boolean
                Dim calificacion As Boolean

                If Request.Form("chkFechaExp") = "Si" Then
                    tieneExp = True

                    temp = CType(Request.Form("txtFLL"), String)
                'Dim fechaDescompuesta(3) As String
                'fechaDescompuesta = temp.Split("/")

                'temp = fechaDescompuesta(1) & "/" & fechaDescompuesta(0) & "/" & fechaDescompuesta(2)
                    fechaFin = Convert.ToDateTime(temp)

                Else
                    tieneExp = False
                    fechaFin = New Date()
                End If



                If Request("grupoCalificacion") = "Si" Then
                    calificacion = True
                Else
                    calificacion = False
                End If


                Dim justificacion As String = Request.Form("txtJustificacion")
                Dim cantidadAportes As Integer = Request.Form("idtxtCalificacion")
                Dim txt As String = CType(Request.Form("estudiantes"), String)
                Dim estudiantes As List(Of Integer) = obtenerIds(txt)

                GestorTema.modificarTema(id_tema, nombre, descripcion, fechaFin, calificacion, justificacion, cantidadAportes, estudiantes, tieneExp)
                Response.Redirect("Foros.aspx")
            End If




    End Sub



    Public Sub seguridadDePagina()

        Try
            If Request("id_tema") Is Nothing Then
                redirigirPorError()
            End If


            If Seguridad.validarSiTemaEsDeUnUsuario(CType(Request("id_tema"), Integer)) = False Then
                redirigirPorError()
            End If
        Catch exth As ThreadAbortException
            redirigirPorError()
        Catch ex As Exception
            Seguridad.redirigirPorError("Ocurrio un error a la hora de modificar tema", Response)
        End Try


    End Sub

    Private Sub redirigirPorError()
        Response.Redirect("Inicio.aspx")
    End Sub

    Public Function obtenerDatosTema() As Dictionary(Of String, Object)
        Try
            Return GestorTema.consultarTema(CInt(Request("id_tema")))
        Catch ex As Exception
            redirigirPorError()
        End Try
    End Function


    Private Function obtenerIds(ByRef ids As String) As List(Of Integer)
        Dim listaIds As List(Of Integer) = New List(Of Integer)
        Try

            Dim idsTemp() As String = ids.Split(",")
            For Each id As String In idsTemp
                listaIds.Add(CType(id, Integer))
            Next


        Catch ex As Exception
            Seguridad.redirigirPorError("Ocurrio un error a la hora de modificar tema", Response)
        End Try

        Return listaIds

    End Function


    Public Function estudiantesAsociados() As String
        Dim htmlEstudiantes As String = ""
        Try

            Dim contadorIds As Integer = 0
            Dim estuAsociados As List(Of Informacion) = GestorTema.buscarEstudiantesAsociadosTema(CInt(Request("id_tema")))

            For Each estudiante As Informacion In estuAsociados
                contadorIds = contadorIds + 1

                htmlEstudiantes += "<tr>" &
                                       "<td><input id='" & estudiante.IdInfo & "' class='estudianteTema' type='checkbox' checked='checked'/>" & estudiante.Informacion & "</td>" &
                                   "</tr>"

            Next


        Catch ex As Exception
            Seguridad.redirigirPorError("Ocurrio un error a la hora de modificar tema", Response)
        End Try

        Return htmlEstudiantes

    End Function


    Public Function estudiantesSinAsociar() As String
        Dim htmlEstudiantes As String = ""
        Try

            Dim contadorIds As Integer = 0
            Dim estuAsociados As List(Of Informacion) = GestorTema.cargarEstudiantesSinAsociar(CInt(Request("id_tema")))

            For Each estudiante As Informacion In estuAsociados
                contadorIds = contadorIds + 1

                htmlEstudiantes += "<tr>" &
                                       "<td><input id='" & estudiante.IdInfo & "' class='estudianteTema' type='checkbox' />" & estudiante.Informacion & "</td>" &
                                   "</tr>"

            Next

        Catch ex As Exception
            Seguridad.redirigirPorError("Ocurrio un error a la hora de modificar tema", Response)
        End Try


        Return htmlEstudiantes

    End Function


End Class